package com.mall.canal.listener;

import com.alibaba.fastjson.JSON;
import com.mall.goods.model.Sku;
import com.mall.search.feign.SkuSearchFeign;
import com.mall.search.model.SkuEs;
import org.springframework.stereotype.Component;
import top.javatool.canal.client.annotation.CanalTable;
import top.javatool.canal.client.handler.EntryHandler;

import javax.annotation.Resource;

/**
 * @author ljr
 * @version 1.0
 * @description: TODO
 * @date 2021/9/8 22:26
 */
@Component
@CanalTable("sku")
public class SkuListener implements EntryHandler<Sku> {

    @Resource
    private SkuSearchFeign skuSearchFeign;

    @Override
    public void insert(Sku sku) {
        if(sku.getStatus().intValue()==1){
            skuSearchFeign.add(JSON.parseObject(JSON.toJSONString(sku), SkuEs.class));
        }
    }

    @Override
    public void update(Sku before, Sku after) {
        if(after.getStatus().intValue()==2){
            //删除索引
            skuSearchFeign.del(after.getId());
        }else{
            //更新
            skuSearchFeign.add(JSON.parseObject(JSON.toJSONString(after), SkuEs.class));
        }
    }

    @Override
    public void delete(Sku sku) {
        skuSearchFeign.del(sku.getId());
    }
}
